<?php
namespace Org\Util;

/**
 * 业务逻辑状态码
 * @modify trainyao 2016-04-21 创建
 */
class LogicStatus {

    protected static $status = array(
        200 => array(
            200 => '_SUCCESS_', // 成功
        ),
        403 => array(
            // 1**  权限相关
            100 => '_NO_RIGHT_',    // 没有权限进行此操作
            101 => '_PRC_EXCEPTION_', // PRC调用异常
            130 => '_MOBILE_FORMAT_ERROR_', // 手机号格式错误

            // 2**  校验相关
            200 => '_VCODE_SEND_ONE_MINUTE_', // 发送短信频繁,请1分钟后再试
            201 => '_VCODE_OUTDATE_', // 短信验证码已过期
            202 => '_WRONG_VCODE_', // 短信验证码错误
            203 => '_WRONG_IMAGECODE_', // 图片验证码错误
            204 => '_ID_CARD_FORMAT_ERROR_', // 身份證格式錯誤
            
            212 => '_PARAMETER_IS_NOT_RIGHT_', // 参数信息不完整
            213 => '_DATA_EXCEPTION_', // 参数格式错误
            214 => '_PARAMETER_CANNOT_BE_EMPTY_', // 参数信息不能为空

            // 3**  用户相关
            300 => '_USER_NOT_EXIST_',  // 用户不存在
            301 => '_USER_EXIST_',  // 用户已存在
            302 => '_WRONG_PASSWORD_',  // 密码错误
            303 => '_ALREADY_LOGIN_',  // 您已经登录
            304 => '_NOT_LOGIN_',  // 您尚未登录
            305 => '_NOT_BIND_ID_',  // 您尚未绑定身份证

            // 4**  客栈房间相关
            400 => '_HOTEL_NOT_ENABLE_', // 客栈尚未开通微预定
            401 => '_ROOM_TYPE_NOT_ENABLE_', // 该房型暂不可预定
            402 => '_ROOM_NOT_ENABLE_', // 该房间暂不可预定
            403 => '_ROOM_NOT_REPEAT_', // 房间预定重复
            404 => '_ROOM_ALREADY_CANCEL_', // 房间已在前台取消
            405 => '_HOUR_ROOM_WITHIN_',//尚未到钟点房时间
            406 => '_HOUR_ROOM_NOT_BOOK_',// 房间暂时不可预定，请换更换房间

            // 6**  上传相关
            600 => '_UPLOAD_FILE_SIZE_', // 上传文件过大
           // 6** 客栈预定端相关
            601 => '_CARD_OUTDATE_', // 房卡已过期
            602 => '_CARD_NOT_YET_', // 尚未到获取房卡时间
            603 => '_CARD_MAKE_FAILED_', // 房卡生成失败
            606 => '_CARD_IS_RF_CARD_', // 该房间不支持二维码钥匙

            // 7**  订单相关
            700 => '_DIFF_STAR_END_TIME', // 离店时间必须大于入住时间
            701 => '_ORDER_CHECKOUT_TIME', // 退房时间为当天
            702 => '_ORDER_CHECKIN_TIME', // 入住时间为当天
            703 => '_ORDER_LAST_STRING', // 是否确定提交
            704 => '_ORDER_FIRST_STRING', // 此订单
            705 => '_ORDER_PRICE_ERROR', // 会员价（除去押金）不能低于0元
            706 => '_ROOM_SERVICE_TIME_NOT', // 当前是维修时间
        ),

        // 服务器错误
        500 => array(
            500 => '_SERVER_BUSY_', // 服务器繁忙
            501 => '_SELECT_FAILED_', // 查询失败
            502 => '_ADD_FAILURE_', // 添加失败
            503 => '_EDIT_FAILURE_', // 修改失败
            504 => '_UPDATE_FAILURE_', // 更新失败
            505 => '_DELETE_FAILURE_', // 删除失败
            506 => '_UPLOAD_FAILED_', // 上传失败
            507 => '_SEND_FAILED_', // 发送失败
            508 => '_DB_EXCEPTION_', // 数据库异常
        )
    );

    /**
     * 取出业务逻辑描述信息
     * @modify trainyao 2015-10-15 添加多语言
     * @param  integer $httpStatus   Http状态码
     * @param  integer $logicStatus  Http业务状态码
     * @return 业务逻辑描述信息
     */
    public static function getInfo($httpStatus, $logicStatus) {
        $info = self::$status[$httpStatus][$logicStatus];
        if (empty($info)) {
            return '';
        }
        $info = L($info);
        return empty($info) ? '' : $info;
    }
}
